Solid-state drives (SSD) are a form of data storage that use a solid-state memory to store data. Examples of solid state memory include static random access memory (SRAM), dynamic random access memory (DRAM), and flash memory. SSDs are less susceptible to mechanical failures compared to conventional hard drives because SSDs do not include as many moving parts as conventional disk drives, which store data on a rotating disk. Additionally, SSDs have a faster startup time than conventional hard disk drives because they do not require time for a disk to spin up to a particular speed in order for data to be written to or read from the disk.
An SSD may comprise a plurality of NAND flash memory cells or DRAM memory cells. NAND flash memory may be single-level cell (SLC) flash or multi-level cell (MLC) flash. SLC flash stores a single bit of data per cell, and MLC flash stores store two or more bits of data per cell. Accordingly, MLC flash has a higher density than that of SLC flash, and due to its lower price and higher capacity, MLC flash is more commonly used in an SSD than SLC flash. However, MLC flash has a higher bit error rate (BER) compared to its less complex counterpart SLC flash. Accordingly, SLC flash is more reliable.
Flash memory has a finite number of erase-write cycles. To prolong the life of flash memory, a flash controller performs wear-leveling operations which spread out the read and write operations among the flash groups so that one flash group is not constantly being written to and erased. Additionally, the flash controller coordinates the read, write, and erase cycles as well as perform error correction for the entire group of flash memory. These conventional flash controllers provide slow read and write times and have a limited capacity.
Accordingly, an improved solid-state flash memory architecture is needed.